package com.linkq.ipinyin.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;

/**
 * @FileName BcStudyPlan
 * @Description 学习计划表
 * @Author wangpeng
 * @date 2025-01-01
 **/

@Data
@TableName("t_study_plan")
public class StudyPlan extends Model<StudyPlan> {

    @TableId(value = "id", type = IdType.AUTO)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    /**
     * 计划名称
     */
    private String planName;

    /**
     * 创建人
     */
    private Integer createUser;

    /**
     * 计划开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startTime;

    /**
     * 计划结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;

    /**
     * 是否严格遵循艾宾浩斯记忆法
     */
    private Integer isStrict;

    /**
     * 是否完成 0: 未完成 1: 已完成
     */
    private Integer isComplete;

    /**
     * 当前进度
     */
    private Integer progress;

    /**
     * 计划执行匹配度
     */
    private Integer matchDegree;

    /**
     * 年级
     */
    private Integer grade;

    /**
     * 单元
     */
    private String unit;

    /**
     * 汉字类型
     * 1：识字表 2：写字表
     */
    private Integer characterType;

    /**
     * 每篇课文练习题数量
     */
    private Integer questionNumber;

    /**
     * 是否已生成执行计划 0：未生成 1：正常生成 2：无选择课文 3：无选择汉字 4：汉字数量少于计划时长
     */
    private Integer isCreateExecution;

    @Transient
    @TableField(exist = false)
    private List<ExecutionPlan> executionPlanList;

}
